<?php
/**
 * Created by PhpStorm.
 * User: 11893
 * Date: 2018/11/14
 * Time: 16:32
 */

namespace Mars\PageCache;

use Illuminate\Contracts\Foundation\Application;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

interface CacheInterface
{
    public function hasPage(Request $request);

    public function shouldCache(Request $request);

    public function cache(Request $request, Response $response, $expire = 0);

    public function output(Request $request);

    public function setApplication(Application $app);
}